package com.book.system.service;

import java.util.List;
import java.util.Map;

/**
 * @author oath
 */
public interface LendListService {
    /**
     * 获取所有数据列表
     *
     * @param flag 借还状态
     * @return list
     * @author : oath
     * @create time: 2024/5/15 0:08
     */
    List<Map<String, Object>> getList(Integer flag);

    /**
     * 催还方法
     *
     * @param serNum 借还序号
     * @return int
     * @author : oath
     * @create time: 2024/5/15 22:07
     */
    int updateById(String serNum);

    /**
     * 删除方法
     *
     * @param serNum 借还序号
     * @return int
     * @author : oath
     * @create time: 2024/5/15 22:07
     */
    int deleteById(String serNum);

    /**
     * 借阅图书
     *
     * @param bookId 图书编号
     * @param id     用户编号
     * @return int
     * @author : oath
     * @create time: 2024/5/15 22:46
     */
    int borrowingBook(Integer id, Integer bookId);

    /**
     * 根据id查询未还的书籍信息
     *
     * @param id 用户编号
     * @return list
     * @author : oath
     * @create time: 2024/5/23 17:17
     */
    List<Map<String, Object>> getReaderBookList(Integer id);

    /**
     * 根据id查询已还的书籍信息
     *
     * @param id 用户编号
     * @return list
     * @author : oath
     * @create time: 2024/5/23 17:17
     */
    List<Map<String, Object>> getReaderList(Integer id);


    /**
     * 根据借书id删除借书信息
     *
     * @param id 借书id
     * @return int
     * @author : oath
     * @create time: 2024/5/23 17:49
     */
    int deleteById(Integer id);

    /**
     * 查询当前用户的未还图书信息
     * @author : oath
     * @create time: 2024/6/4 20:25
     * @param readerId 用户id
     * @return list
     */
    List<Map<String, Object>> getUnreturnedBooksList(Integer readerId);

    /**
     * 挂失图书
     * @author : oath
     * @create time: 2024/6/4 21:11
     * @param serNum 借还序号
     * @return int
     */
    int reportingLoss(Integer serNum);

    /**
     * 获取用户的挂失的图书
     * @author : oath
     * @create time: 2024/6/4 21:32
     * @param readerId 用户id
     * @return list
     */
    List<Map<String, Object>> getReportingLossList(Integer readerId);

    /**
     * 解挂图书
     * @author : oath
     * @create time: 2024/6/4 21:20
     * @param serNum 借还序号
     * @return int
     */
    int unhook(Integer serNum);

/**
 * 归还图书
 * @author : oath
 * @create time: 2024/6/4 22:07
 * @param serNum 借还序号
 * @return int
 */
    int returnBook(Integer serNum);

    /**
     * 续借图书
     * @author : oath
     * @create time: 2024/6/4 22:08
     * @param serNum 借还序号
     * @return int
     */
    int renewalOfLoan(Integer serNum);
}
